/* Hey Emacs use -*- mode: C -*- */
/*
 * Copyright (c) 2017 Cisco and/or its affiliates.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at:
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

option version = "3.0.0";
import "vnet/ip/ip_types.api";

/** \brief UDP-Probe Add/Delete request 
    @param src_ip_address - Source ipv4/v6 address for the udp-ping flow
    @param dst_ip_address - Destination ipv4/v6 address for the udp-ping flow
    @param start_src_port - Starting source port of port range for udp-ping
    @param end_src_port - End source port of port range for udp-ping
    @param start_dst_port - Starting destination port of port range for udp-ping
    @param end_dst_port - End destination port of port range for udp-ping
    @param interval - Time interval in seconds at which udp-probe need to be sent
    @param is_ipv4 - To determine whether IPv4 or IPv6 address is used
    @param dis - TRUE is delete, FALSE if Add
*/
autoreply define udp_ping_add_del {
  u32 client_index;
  u32 context;
  vl_api_address_t src_ip_address;
  vl_api_address_t dst_ip_address;
  u16 start_src_port;
  u16 end_src_port;
  u16 start_dst_port;
  u16 end_dst_port;
  u16 interval;
  u8 dis;
  u8 fault_det;
  u8 reserve[3];
};

/** \brief Udp-probe export add/del request
    @param context - sender context, to match reply w/ request
    @param retval - return value for request
    @param enable - If TRUE then enable export else disable
*/
autoreply define udp_ping_export {
   u32 client_index;
   u32 context;
   bool enable;
};

